module Sim.PhysTypes where

type Number       = Int
type Coord        = (Double, Double)
type Angle        = Double
type Exposure     = Double
type PhotonFlux   = Double
type Magnitude    = Double
type WaveLength   = Double
type FiledView    = ((Double, Double), (Double, Double))
type SpType       = String

type EnergyDist   = Double -> Double
type Filter       = Double -> Double
type Sensitivity  = Double -> Double
type Distortion   = (Double,Double) -> (Double,Double)

-- Angle Dispersion Function (ADF)

type  ZeroOrder = (Double, Coord)
type OtherOrder = [(Double, Coord, WaveLength)]

data ADF = Grism [OtherOrder] ZeroOrder [OtherOrder] | None


